home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
cpp_libs
/
sos3-2.lha
/
src
/
cfe
/
cfe.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-01-23
|
3KB
|
72 lines
/* --------------------------------------------------------------------------
* Copyright 1992 by Forschungszentrum Informatik (FZI)
*
* You can use and distribute this software under the terms of the licence
* you should have received along with this program.
* If not or if you want additional information, write to
* Forschungszentrum Informatik, "STONE", Haid-und-Neu-Strasse 10-14,
* D-7500 Karlsruhe 1, Germany.
* --------------------------------------------------------------------------
*/
#include "mta_sos.h"
/* Compile a sequence of schema modules:
- check for syntactic and semantic correctness
- enter each module sos_Into a container
This job is done by the function `cfe_compile'. The remaining functions
perform auxiliary operations for the semantic analysis; they are called
from the yacc parser (see cfe_yacc.s).
*/
// compilation state
extern sos_Schema_module cfe_schema;
extern sos_Type_table cfe_type_tab;
extern sos_Schema_type_List cfe_types;
extern sos_Container cfe_cnt;
// schema compiler
extern void cfe_compile ();
// schema handling
extern void cfe_init (sos_String name, sos_Imports);
extern void cfe_import_module (sos_Imports, sos_String);
extern void cfe_check_schema ();
extern void cfe_finalize ();
// class handling
extern void cfe_check_super_classes (sos_Class_type,
sos_Type_name_List);
extern void cfe_set_super_closure (sos_Class_type);
extern void cfe_set_offsets_and_size (sos_Class_type, sos_Int offset);
extern void cfe_set_inherited_methods (sos_Class_type);
extern void cfe_set_root_name (sos_Class_type);
// method handling
extern void cfe_init_methods (sos_Class_type);
extern void cfe_complete_methods (sos_Class_type);
extern void cfe_append_comp_methods
(sos_Class_type, sos_Type_name, sos_String, sos_Expr,
sos_Method_kind kind, sos_Method_kind set_kind,
sos_Bool is_value, sos_Bool is_local,
sos_Int &offset);
extern void cfe_append_method (sos_Class_type, sos_Method);
// other type handling
extern sos_Type_name cfe_lookup_generic_instantiation
(sos_String, sos_Type_name_List, sos_Schema_type_List);
extern void cfe_check_generic_instantiations (sos_Type_name_List);
extern sos_Gen_param cfe_lookup_gen_params (sos_String, sos_Gen_param_List);
extern sos_Type_name cfe_lookup_type_name (sos_Class_type, sos_String);
extern sos_Type cfe_lookup_types (sos_String, sos_Type_table);
extern void cfe_check_type (sos_String);
extern void cfe_make_class_type (sos_String, sos_Class_type);
extern void cfe_check_no_generic (sos_Type_name);
extern sos_Int cfe_enum_size (sos_Int nr_literals);
// general
extern sos_Int cfe_echo_flag;
extern void cfe_error (err_class ec, err_msg s, char *where = 0);
// predefined types
extern sos_Schema_type cfe_get_object_type();